//Source file: D:\\Users\\afpa\\Documents\\workspace\\20-otarie\\src\\fr.afpa.biblio.metier\\EmpruntEnCours.java

package fr.afpa.biblio.metier;

import java.util.Date;

public class EmpruntEnCours 
{
	private Date dateEmprunt;
	private Utilisateur emprunteur;
	private Exemplaire exemplaire;

	
	
	/**
	 * Constructeur
	 * @param dateEmprunt
	 * : date d'emprunt du livre	
	 * @param emprunteur
	 * :identit� de l'emprunteur
	 * @param exemplaire
	 * :titre de l'exemplaire emprunt� par l'emprunteur
	 * @roseuid 5240E3CF01BC
	 */
	public EmpruntEnCours(Date _dateEmprunt, Utilisateur _emprunteur,Exemplaire _exemplaire) 
	{
		this.dateEmprunt = _dateEmprunt;
		this.emprunteur = _emprunteur;
		this.exemplaire = _exemplaire;
	}
	
	/**
	 *constructeur vide 
	 * @throws BiblioExeception 
	 * @throws IllegalAccessException 
	 * @throws InstantiationException 
	 */
	public EmpruntEnCours() throws InstantiationException, IllegalAccessException, BiblioExeception{
		this(new Date(), new Utilisateur() , new Exemplaire());
		
	}
	

	/**
	 * @param d
	 * :date d�finit d'un emprunt d'exemplaire
	 * @throws BiblioExeception 
	 * :si d==0
	 * @roseuid 5240DBA701B2
	 */
	public void setDateEmprunt(Date d) throws BiblioExeception 
	{
		if(d==null){
			throw new BiblioExeception("La date en argument de setDateEmprunt ne peut �tre null.");
		}
		
		this.dateEmprunt = d;
		
	}
	//getter
	
	public Date getDateEmprunt() {
		return dateEmprunt;
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "EmpruntEnCours [dateEmprunt=" + dateEmprunt + ", emprunteur="
				+ emprunteur + ", exemplaire=" + exemplaire + ", toString()="
				+ super.toString() + "]";
	}

	
	/* (non-Javadoc)
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		EmpruntEnCours other = (EmpruntEnCours) obj;
		if (dateEmprunt == null) {
			if (other.dateEmprunt != null)
				return false;
		} else if (!dateEmprunt.equals(other.dateEmprunt))
			return false;
		if (emprunteur == null) {
			if (other.emprunteur != null)
				return false;
		} else if (!emprunteur.equals(other.emprunteur))
			return false;
		if (exemplaire == null) {
			if (other.exemplaire != null)
				return false;
		} else if (!exemplaire.equals(other.exemplaire))
			return false;
		return true;
	}

	
	
	
}// fin class

